#!/bin/bash

echo "上传文件前备份已存在的旧文件"
file_name=${1}

if [ -z "${file_name}" ]; then
  echo "未指定文件名称，备份失败"
  exit 1
fi

dest_dir=${2}
if [ -z "${dest_dir}" ]; then
  echo "未指定远程目录，备份失败"
  exit 1
fi

if [ ! -d "${dest_dir}" ]; then
  echo "${dest_dir}目录不存在或者不是一个目录路径"
  exit 1
fi

echo "文件名称: ${file_name}"
echo "远程目录: ${dest_dir}"

# 判断远程目录中是否有相同文件名称的文件
cd "$dest_dir" || exit 1

if [ -f "${file_name}" ]; then
  echo "${file_name}在目录下${dest_dir}已存在"
  file_name=$(readlink -f "${file_name}")
  #在当前目录下创建备份目录
  backup_dir="backup/$(date +"%Y%m%d")/$(date +"%H%M%S")"
  if [ ! -d "${backup_dir}" ]; then
    mkdir -p "${backup_dir}"
  fi
  echo "创建备份目录$(readlink -f "${backup_dir}")"
  mv "${file_name}" "${backup_dir}"
  echo "备份完成"
else
  echo "${file_name}在目录下${dest_dir}不存在，无需备份"
fi
